package com.archeanx.libx.http;

import okhttp3.OkHttpClient;
import retrofit2.Retrofit;

/**
 * 设置请求
 */
public abstract class XOnHttpRequestInitListener {
    /**
     * @return OkHttpClient.Builder
     * 此方法可以对  OkHttpClient.Builder 进行补充
     * 只会被调用一次
     */
    public OkHttpClient.Builder initOkhttpBuilder() {
        return XHttpUtil.getOkhttpBuilder();
    }

    /**
     * 此方法可以 重写，也可以对OkhttClict 进行额外的处理
     * 必须 使用  XHttpHelper.getInstance().setOkhttpClient() 保存，也可全局使用
     *只会被调用一次
     * @return OkHttpClient
     */
    public OkHttpClient initOkhttp() {
        return initOkhttpBuilder().build();
    }

    /**
     * 可以对Retrofit 进行 额外的处理；
     * 每个baseUrl对应一个Retrofit实例
     * 可能会被调用多次
     * @param baseUrl 请求域名
     * @return Retrofit
     */
    public Retrofit initRetrofit(String baseUrl) {
        return XHttpUtil.getRetrofitBuilder(XHttpHelper.getInstance().getOkHttpClient(), baseUrl).build();
    }


}
